// pages/search/search.js
import {network} from "../../utils/network.js"
Page({

  /**
   * 页面的初始数据
   */
  data: {

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
      // 调用异步获取缓存的API接口方法
      var that=this;
      wx.getStorage({
        key: 'searched',
        success: function(res) {
          var data=res.data;
          // 将数据放到data{}对象中
          that.setData({
            histories:data
          })
        },
      })

  },
  // 监听事件
  onSearchInputEvent:function(event){
    var that=this;
    var value = event.detail.value;
    // 判断搜索框是否有数据，没有数据不去请求网络接口
    if (!value || value===""){
      that.setData({
        subjects:null
      })
      return;
    }
    // 执行请求
    network.getSearch({
      q:value,
      success: function (subjects){
        // 渲染数据到页面
        that.setData({
          subjects: subjects
        })
      }
    })
  },
  // 根据搜索到的内容跳转到某详情页
  onItemTapEvent:function(event){
    var that=this;
    // 获取id和title
    var id=event.currentTarget.dataset.id;
    var title = event.currentTarget.dataset.title;
    // 获取以前的缓存数据,并将其添加到缓存数据中
    var histories = that.data.histories;
    // 识别是否存在重复的缓存数据
    var isExisted=false;
    if (histories){
      for (var index = 0; index < histories.length; index++) {
        var movie = histories[index];
        if (movie.id === id) {
          isExisted = true;
          break;
        }
      } 
    };
    if (!isExisted){
      if (!histories){
        histories=[];
      }
      histories.push({ id: id, title: title });
      // 通过异步缓存来缓存历史搜索记录
      wx: wx.setStorage({
        key: 'searched',
        data: histories,
        success: function (res) {
          console.log("缓存成功")
        },
      })
    }
    wx.navigateTo({
      url: "/pages/detail/detail?type=movie&id='+id",
    })
  },
  // 清除历史搜索记录中的缓存记录
  onClearEvent:function(){
    var that=this;
    // 移除某个缓存
    wx.removeStorage({
      key: 'searched',
      success: function(res) {
        console.log("清除成功")
      },
    });
    that.setData({
      histories:null
    })
  }

})